﻿using System;

namespace UtilsBase
{
    public class UtilsClass
    {
        //    {1.(new StackTrace()).GetFrame(1) // 0为本身的方法；1为调用方法
        //2.(new StackTrace()).GetFrame(1).GetMethod().Name; // 方法名
        //3.(new StackTrace()).GetFrame(1).GetMethod().ReflectedType.Name; // 类名
        public string GetMethodInfo()
        {
            string str = "";

            //取得当前方法命名空间    
            str += "命名空间名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace + "";

            //取得当前方法类全名 包括命名空间    
            str += "类名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName + "";

            //取得当前方法名    
            str += "方法名:" + System.Reflection.MethodBase.GetCurrentMethod().Name + "";
            str += "";

            //父方法
            System.Diagnostics.StackTrace ss = new System.Diagnostics.StackTrace(true);
            System.Reflection.MethodBase mb = ss.GetFrame(1).GetMethod();

            //取得父方法命名空间    
            str += mb.DeclaringType.Namespace + "";

            //取得父方法类名    
            str += mb.DeclaringType.Name + "";

            //取得父方法类全名    
            str += mb.DeclaringType.FullName + "";

            //取得父方法名    
            str += mb.Name + "";
            return str;
        }
    }
}
